package com.alks.function.service.finance.lotcost;

import com.alks.function.data.request.finance.lotcost.LotCostRequest;
import com.alks.function.data.vo.finance.lotcost.*;
import com.alks.function.data.vo.finance.lotcost.h5.LotCostAnalysisDetailH5VO;
import com.alks.function.data.vo.finance.lotcost.h5.LotCostAnalysisListH5VO;
import com.alks.function.data.vo.finance.lotcost.h5.LotCostAnalysisStatisticH5VO;

import java.util.List;

/**
 * @author: chen
 * @date: 2024/12/20
 * @description: 指令成本分析
 */
public interface ILotCostAnalysisService {

    /**
     * 指令成本分析列表查询
     * @param request
     * @return
     */
    List<LotCostAnalysisListVO> tempQuery(LotCostRequest request);

    /**
     * 指令成本分析详情
     * @param lotNo
     * @return
     */
    LotCostAnalysisDetailVO detail(String lotNo);

    /**
     * 查询材料耗材列表
     * @param lotNo
     * @param mtlType
     * @param partName
     * @return
     */
    List<ReportMtlDetailVO> getCostDetail(String lotNo, String mtlType, String partName);

    /**
     * 查询人工明细列表
     * @param lotNo
     * @param type
     * @return
     */
    List<ReportLaborDetailVO> getLaborDetail(String lotNo, String type);

    /**
     * 指令成本分析列表查询 移动端，减少返回数据，提高接口响应速度
     * @param request
     * @return
     */
    List<LotCostAnalysisListH5VO> tempQueryForH5(LotCostRequest request);

    /**
     * 基本数据
     * @param lotNo
     * @return
     */
    LotCostAnalysisDetailH5VO detailForH5(String lotNo);

    /**
     * 成本统计
     * @param lotNo
     * @return
     */
    LotCostAnalysisStatisticH5VO statisticForH5(String lotNo);

    /**
     * 补单明细
     * @param lotNo
     * @return
     */
    List<SupplementDutyVO> getSupplementDutyDetail(String lotNo);

    /**
     * 其他明细
     * @param lotNo
     * @return
     */
    List<OtherFeeVO> getOtherFeeDetail(String lotNo);
}
